开始之前:

1. 识别人脸输出相关数据

在人脸识别功能下,当人脸出现在HUSKYLENS 2屏幕中时,可以被检测和框出,从而获取检测到的人脸总数、指定人脸的相关数据。

I2C示例程序如下:

Interface Diagram

UART示例程序如下。

后续示例代码将仅提供I2C模式代码,如需使用UART模式,请仿照实例化huskylens的方法修改代码即可。

Interface Diagram

在Mind+中点击上传到设备,等待程序上传完成。

将HUSKYLENS 2的摄像头对准画面中的人脸分别学习,如何学习人脸详细操作请看:二哈识图 2 人脸识别功能说明

学习完成后,对准该人脸,可在M10屏幕上观察输出结果。

运行结果:如下,可以获取画面中检测到的人脸总数,不论该人脸是否已学习;可以指定获取靠近摄像头画面中心的人脸ID、第一个检测到的人脸ID(未学习过的人脸ID为0)。

Interface Diagram

2. 获取画面中指定人脸的详细数据

可以获取指定人脸的五官、位置数据,可以读取的人脸数据有:人脸ID、人脸名称、宽度、高度以及人脸中心点的X坐标位置和Y坐标位置、左/右眼X坐标、左/右眼Y坐标、左/右嘴角X坐标、左/右嘴角Y坐标、鼻子X/Y坐标位置。

如以下示例程序可以获取靠近摄像头中心画面的人脸的五官数据,未学习的人脸亦可获取。

Interface Diagram

**运行结果:**如下图,运行程序,M10屏幕上显示人脸ID号及该人脸的五官坐标数据。由于该人脸未学习,因此人脸ID为0。

Interface Diagram

除上述数据以外,还可以获取更多人脸数据,如画面中某个指定人脸的总数、该人脸的名称、第一个该人脸的相关数据。(未学习的人脸亦可获取以上数据)

以某个已学习的人脸为例,示例程序如下:

Interface Diagram

**运行结果:**如下图,运行程序,M10屏幕上显示画面中ID1人脸总数、该人脸的名称,第一个检测到的ID1人脸中心XY坐标。(人脸名称默认为“人脸”,设置名字操作,详见人脸识别功能说明-设置名字。)

Interface Diagram

3. 人脸识别积木说明

积木 说明
HUSKYLENS 2 的人脸识别功能下,用于获取一次人脸识别的数据结果。
判断当前画面中是否存在人脸。
获取离屏幕十字光标最近的一个人脸的相关数据,包括人脸的ID、自定义的人脸的名称、中心点X坐标、中心点Y坐标、宽度、高度、左/右眼X坐标、左/右眼Y坐标、左/右嘴角X坐标、左/右嘴角Y坐标、鼻子X/Y坐标位置。
获取屏幕中所有检测到的人脸的数量,包括未学习的和已学习的人脸。
当出现多个标签时,获取某一指定人脸的相关数据。
判断指定ID的人脸是否存在在画面中。未学习的ID统一为0,已学习的ID按学习顺序排序。
获取当前画面中指定ID的人脸数量。
当出现多个人脸时,获取某一指定人脸的相关数据。
当出现多个同一ID的人脸时,获取某一指定人脸的相关数据。
获取HUSKYLENS 2已学习的人脸的ID总数量,例如当HUSKYLENS 2学习过3种人脸,ID分别为ID1、ID2、ID3,无论这3张人脸是否出现在画面中,使用此积木则输出结果为3